package com.ruoyi.lock.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.data.annotation.Transient;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 智能锁设备信息对象 a_smartlocks
 * 
 * @author arvin
 * @date 2024-03-07
 */
@Data
public class ASmartlocks extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键，自增 */
    private Long id;

    /** 设备ID，每个设备的唯一标识 */
    @Excel(name = "设备ID")
    private String mac;
    @Transient
    private String tar;

    /** 设备名称，便于识别 */
//    @Excel(name = "设备名称")
    private String name;
    @Transient
    @Excel(name = "所属部门")
    private String deptName;
    @Transient
    private String nickName;

    /** 设备型号 */
//    @Excel(name = "设备型号")
    private String model;

    /** 序列号，出厂时分配的唯一编号 */
//    @Excel(name = "序列号")
    private String serialNumber;

    /** 固件版本 */
//    @Excel(name = "固件版本")
    private String firmwareVersion;

    /** 设备状态，如在线、离线、错误 */
    private String status;
    @Excel(name = "设备状态")
    private String statusDescription;

    /** 电池电量，百分比表示 */
    @Excel(name = "电池电量")
    private Long batteryLevel;

    /** 安装日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date installationDate;

    /** 最后通讯时间，设备最后一次与服务器通信的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    @Excel(name = "最后通讯时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastCommunication;

    /** 安装位置描述或地址 */
//    @Excel(name = "安装位置")
    private Long location;

    /** 纬度 */
//    @Excel(name = "纬度")
    private BigDecimal latitude;

    /** 经度 */
//    @Excel(name = "经度")
    private BigDecimal longitude;

    /** 设备所有者ID */
//    @Excel(name = "设备所有者ID")
    private Long ownerId;


    /** 设备所属的部门或组织单位ID */
    private Long deptId;

    /**
     * 详细地址
     */
    private String detailedAddress;

    @Transient
    private String updateName;

    /** 租户ID */
//    @Excel(name = "租户ID")
    private Long tenantId;
    private String tenantName;

    /** 房东ID */
//    @Excel(name = "房东ID")
    private Long landlordId;
    @Transient
    private String landlordName;

    /** 设备所属，加盟商名称 */
    @Excel(name = "设备所属")
    private String partnerName;
    /**
     * 单位id
     */
    private Long unitId;
    @Transient
    //单位名称
    @Excel(name = "单位")
    private String unName;


    //房间 id
    private String roomId;
    //地址
    private String address;
    //栋
    @Excel(name = "楼栋")
    private String buildingName;
    //楼层
    @Excel(name = "楼层")
    private String floorName;
    //房间号
    @Excel(name = "房间号")
    private String roomName;

    //出库时间
    @Transient
    private Date outboundTime;

    private transient String phone;

    /** 房间id */
    private String homeid;
    /** 电池电压 */
    private String volt;
    /** 联网信号强度 */
    private String rssi;
    /** 心跳间隔 */
    private String hbinterval;
    /** 设备时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date time;
    /** 锁内日志 */
    private int logId;

    /** 0、待生效  1、已生效 */
    private int validWordStatus;

    private Integer pageNum;
    private Integer pageSize;


    private Long cellid;//小区
    private String cellidName;
    private Long ldid;//楼栋
    private String ldidName;
    private Long lch;//楼层
    private Long agentsId;//代理商

    private String isGuanLian;//是否关联房间


}
